current version 1.9 - 19th March 2025
version | date | comment |
---|---|---|
1.0 | 27/Jun/2012 | Original code |
1.1 | 10/Oct/2023 | an irrigated area can accept multiple sources from different intakes |
1.2 | 13/Nov/2023 | changed District to Intake and eta (irrigation efficiency) added |
1.3 | 04/Dec/2023 | maximum discharge and eflow are defined daily. function SetDailyArray added |
1.4 | 06/May/2024 | id written as header in output file instead of name |
1.5 | 04/Jun/2024 | output file for both diverted and downstream discharge |
1.6 | 05/Jun/2024 | multiple intakes in one cell are allowed |
1.7 | 31/Jul/2024 | output files are not created when dtOut = 0 |
1.8 | 21/Aug/2024 | upstream discharge written to output file |
1.9 | 19/Mar/2025 | fluxQ set to zero when out of irrigation period |
license: GNU GPL http://www.gnu.org/licenses/
routines to model water intakes from river for irrigation purposes
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(grid_real), | public | :: | Qirrigation | ||||
integer(kind=short), | public | :: | dtIrrigation | ||||
type(Intakes), | public | :: | fields | ||||
type(grid_real), | public | :: | irrigationFlux | ||||
type(grid_real), | private | :: | cpQriver |
local copy of river discharge |
|||
character(len=15), | private | :: | epsg | ||||
integer(kind=short), | private | :: | unitIrrigationDiverted | ||||
integer(kind=short), | private | :: | unitIrrigationDownstream | ||||
integer(kind=short), | private | :: | unitIrrigationUpstream |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public | :: | area |
surface (m2) |
|||
integer(kind=short), | public | :: | c |
row and column number in the local coordinate of raster domain |
|||
integer(kind=short), | public | :: | doy_start |
day of year intake starts taking water |
|||
integer(kind=short), | public | :: | doy_stop |
day of year intake stops taking water |
|||
real(kind=float), | public | :: | e_flow(365) |
minimum environmental flow for every day of the year (m3/s) |
|||
real(kind=float), | public | :: | eta |
irrigation efficiency (0-1) |
|||
real(kind=float), | public | :: | fluxQ |
actual diverted discharge (m3/s) |
|||
character(len=300), | public | :: | id | ||||
type(grid_integer), | public | :: | mask | ||||
real(kind=float), | public | :: | max_discharge(365) |
maximum concessed discharge for every day of the year (m3/s) |
|||
character(len=300), | public | :: | name | ||||
integer(kind=short), | public | :: | r |
row and column number in the local coordinate of raster domain |
|||
real(kind=float), | public | :: | sat_max |
district averaged soil saturation above which irrigation is stopped |
|||
type(Coordinate), | public | :: | xy |
easting and northing |
populate array of daily values
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*) | :: | value |
configure irrigation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | file | |||
character(len=*), | intent(in) | :: | path_out | |||
integer(kind=short), | intent(in) | :: | dtOut |
dt out irrigation |
update irrigation and write output
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time |
current time |
||
type(grid_real), | intent(in) | :: | sat |
soil saturation (0-1) |
||
type(grid_real), | intent(in) | :: | Qriver |
river discharge at current time |
||
integer(kind=short), | intent(in) | :: | dtOut |
time step for output |
||
type(DateTime), | intent(inout) | :: | timeOut |